/**
 * @function isIterable 判断是否为可迭代对象
 * @param obj
 * @returns true | false
 */
export function isIterable(obj: any): boolean {
	// || obj[Symbol.isConcatSpreadable] === true
	return obj != null && typeof obj[Symbol.iterator] === "function"
}

/**
 * @function isObject 判断是否为对象
 * @param obj
 * @returns true | false
 */
export function isObject(obj: any): boolean {
	// lodash 将 function 也视作 object 类型，故作区分
	return typeof obj === "object" && obj !== null
}

/**
 * @function isMap 判断是否为 Map
 * @param obj
 * @returns true | false
 */
export function isMap(obj: any): boolean {
	// return _.isMap(obj)
	return obj instanceof Map
}